---
title: 调测参考
description: "本操作以首次调测为例。"
url: https://www.hiascend.com/document/detail/zh/Atlas%20200I%20A2/latest/RC/driverdevelopmentguide/atlasdg_11_0065.html
sourcePath: /source/zh/Atlas 200I A2/260RC1/RC/driverdevelopmentguide/atlasdg_11_0065.html
indexId: dad391672c73dfb65f78dffcec57c1a9869441b7b025e015dcf6bafc35832c0878
---
# 调测参考

#### 操作步骤

本操作以首次调测为例。

1. 登录准备环境所搭建Linux服务器。
2. 执行如下命令，切换至root用户。
  su - root

3. 使用WinSCP工具，将下载软件包获取的源码包“Ascend310B-source.tar.gz”上传至root用户属组目录下，例如“/opt”。详细操作请参见使用WinSCP传输文件。
4. 执行如下命令，进入源码包所在目录“/opt”。
  cd /opt

5. 执行如下命令，解压源码包“Ascend310B-source.tar.gz”。
  tar -xzvf Ascend310B-source.tar.gz

6. 新增整机dts文件。
例如用户整机的boardid为33150，故dts文件名称为“hi1910B-asic-M150-B33.dts”。具体请参见DTB文件。

  a. 执行如下命令，进入配置文件所在目录。
    cd Ascend310B-source/dtb/dts/hi1910b/hi1910BL


  b. 执行如下命令，新增适配boardid33150的dts文件。
    cp hi1910B-asic-M150-B50.dts hi1910B-asic-M150-B33.dts

    将“hi1910B-asic-M150-B50.dts”另存为boardid33150的dts文件“hi1910B-asic-M150-B33.dts”。

7. 修改整机dts文件。

  a. 执行以下命令进入dts文件编辑模式。
    vim hi1910B-asic-M150-B33.dts

  b. 在dts文件中，分别配置用户产品的实际整机boardid，注释PCIe的.dtsi文件和确认所使用的CAN和pinctrl的.dtsi文件及路径，具体内容如下加粗字体所示。

```
compatible = "hisilicon,hi1910B-evb", "hisilicon,ascend610";
hisi,boardid =
<0x0 0x3 0x3 0x1 0x5 0x0>
;   //修改为实际整机boardid
#address-cells = <0x2>;
#size-cells = <0x2>;
interrupt-parent = <0x1>;
model = "Hisilicon PhosphorHi1910B evb";
/include/ "base/hi1910B-asic-kernel-rc.dtsi"
/include/ "base/hi1910B-commmon-smmu.dtsi"
/include/ "base/hi1910B-mpam.dtsi"
/include/ "base/hi1910B-lp-pm.dtsi"
/include/ "base/hi1910B-lp-devmng.dtsi"
/include/ "base/hi1910B-mbigen-ao.dtsi"
/include/ "base/hi1910B-gpio.dtsi"
/include/ "base/hi1910B-ipcdrv.dtsi"
/include/ "base/hi1910B-ts-drv.dtsi"
/include/ "base/hi1910B-tsdrv.dtsi"
/include/ "base/hi1910B-network-M150-B50.dtsi"
/include/ "base/hi1910B-hidvpp.dtsi"
/include/ "base/hi1910B-hdmi.dtsi"
/include/ "product/hi1910B-audio.dtsi"
/include/ "base/hi1910B-mipitx.dtsi"
/include/ "base/hi1910B-vdp.dtsi"
/include/ "base/hi1910B-isp.dtsi"
/include/ "base/hi1910B-hilink.dtsi"
/include/ "base/hi1910B-mntn-milanr3.dtsi"
/include/ "base/hi1910B-gpu.dtsi"
/include/ "base/hi1910B-ctl.dtsi"
/include/ "base/hi1910B-itrustee.dtsi"
/include/ "base/hi1910B-sata.dtsi"
///include/ "product/hi1910B-pcie-rc-M150-B50.dtsi"
//注释PCIe的.dtsi文件
/include/ "product/hi1910B-mdio-M150-B50.dtsi"
/include/ "product/hi1910B-pinctrl-M150-B50.dtsi"
//确认所使用的pinctrl的.dtsi文件及路径
/include/ "product/hi1910B-can-M150-B50.dtsi"
//确认所使用的CAN的.dtsi文件及路径
/include/ "product/hi1910B-hiusbc-B50.dtsi"
/include/ "product/hi1910B-emmc-M150-B50.dtsi"
/include/ "product/hi1910B-i2c-M150-B50.dtsi"
/include/ "product/hi1910B-spi-M150-B50.dtsi"
```


    如果已调测SerDes接口，直接在已修改的产品dts文件中确认pinctrl的.dtsi文件及路径即可，无需修改boardid和注释PCIe的.dtsi文件。

  c. 配置完成后，按“Esc”键，再执行:wq!保存修改，并按“Enter”键退出。
8. 修改CAN的.dtsi文件。

  a. 执行如下命令进入“product”目录，进入CAN的.dtsi文件的编辑模式。
    cd product

    vim hi1910B-can-M150-B50.dtsi

  b. 在CAN的.dtsi文件中确认已添加can2控制器，具体信息如下所示。

```
mttcan@2 {
compatible = "hisi,mttcan";
mttcan-id = <2>;
cclk-freq-hz = <80000000>;
hclk-freq-hz = <150000000>;
interrupts = <0 180 0x04>,
<0 181 0x04>;
interrupt-names = "int0", "int1";
reg = <0x00 0x822C0000 0x00 0x200>,
<0x00 0x822C1000 0x00 0x1000>,
<0x00 0x80130A38 0x00 0x8>,
<0x00 0x82320000 0x00 0x60>,
<0x00 0xC014FFF8 0x00 0x8>;
reg-names = "reg-base", "mram-base", "reset-base", "gpio-base", "plat-base";
pinctrl-names = "default", "idle";
pinctrl-0 = <&
can2_rx_pmx_func &can2_tx_pmx_func
>; //工作状态
pinctrl-1 = <&
can2_rx_pmx_idle &can2_tx_pmx_idle
>; //休眠状态
};
```


    其他can控制器信息可以通过查看“/opt/Ascend310B-source/dtb/dts/hi1910b/hi1910BL/base”路径下的“hi1910B-can.dtsi”获取。

  c. 配置完成后，按“Esc”键，再执行:wq!保存修改，并按“Enter”键退出。
9. 修改pinctrl的.dtsi文件。

  a. 执行如下命令进入pinctrl的.dtsi文件的编辑模式。
    vim hi1910B-pinctrl-M150-B50.dtsi

  b. 在pinctrl的.dtsi文件中配置utxd3、urxd3的复用关系，具体内容如下加粗字体所示。

```
can2_rx_pmx_func
: can2_rx_pmx_func {
pinctrl-single,pins = <
0x48
0x1>;//
0x48
为寄存器中管脚的Offset Address，0x1为二进制的管脚复用关系001（pad_can_rx2）发送
};
can2_rx_pmx_idle
: can2_rx_pmx_idle {
pinctrl-single,pins = <
0x48
0x1>;//
0x48
为寄存器中管脚的Offset Address，0x1为二进制的管脚复用关系001（pad_can_rx2）发送
};
can2_tx_pmx_func
: can2_tx_pmx_func {
pinctrl-single,pins = <
0x4C
0x1>;//
0x4C
为寄存器中管脚的Offset Address，0x1为二进制的管脚复用关系001（pad_can_tx2）接收
};
can2_tx_pmx_idle
: can2_tx_pmx_idle {
pinctrl-single,pins = <
0x4C
0x1>;//
0x4C
为寄存器中管脚的Offset Address，0x1为二进制的管脚复用关系001（pad_can_tx2）接收
};
```


    同一个管脚只能复用为一种功能，如uart3或can，不可同时复用为多个功能。

  c. 配置完成后，按“Esc”键，再执行:wq!保存修改，并按“Enter”键退出。
10. 将新增的整机dts文件添加到编译路径中。

  a. 执行如下命令，进入“dtbtool”目录。
    cd /opt/Ascend310B-source/dtb/dtbtool/

  b. 执行如下命令，修改CMakelists文件，将所增加的dts文件添加到编译路径中，具体修改如下加粗字体所示。
    vim CMakeLists.txt

```
set(DTS_BASE_DIR ${TOP_DIR}/tools/customize/dts)
if(PRODUCT STREQUAL "ascend310Besl" OR
PRODUCT STREQUAL "ascend310B" OR
PRODUCT STREQUAL "ascend310Bemu" OR
PRODUCT STREQUAL "ascend310Brc" OR
PRODUCT STREQUAL "ascend310Brcesl" OR
PRODUCT STREQUAL "ascend310Brcemu")
# 当前driver跟esl用相同的dts，后期需要更新到单独的目录
set(DTS_SRC_DIR ${DTS_BASE_DIR}/hi1910b/hi1910BL)
set(DTS_FILE_LIST hi1910B-default.dts unreleased/hi1911-esl/hi1911-esl-b600.dts unreleased/hi1911-esl/hi1911-esl-rc-b600.dts unreleased/hi1911-fpga/hi1911-fpga-b600_b0.dts unreleased/hi1911-fpga/hi1911-fpga-b600_b0_b1.dts unreleased/hi1911-fpga/hi1911-fpga-b600_b0_b2.dts unreleased/hi1911-fpga/hi1911-fpga-rc-b600_b0.dts unreleased/hi1911-fpga/hi1911-fpga-rc-b600_b0_b1.dts unreleased/hi1911-fpga/hi1911-fpga-rc-b600_b0_b2.dts hi1910B-evb-900.dts hi1910B-evb-901.dts hi1910B-evb-902.dts hi1910B-evb-903.dts hi1910B-evb-905.dts hi1910B-asic-M150-B50.dts hi1910B-asic-M100-B51.dts hi1910B-asic-M150-B51.dts hi1910B-asic-M160-B51.dts hi1910B-asic-M100-B00.dts hi1910B-asic-M101-B00.dts hi1910B-asic-M150-B00.dts hi1910B-asic-M151-B00.dts
hi1910B-asic-M150-B33.dts
)
```


    新增加的dts只能在加粗字体段落末尾添加。

  c. 配置完成后，按“Esc”键，再执行:wq!保存修改，并按“Enter”键退出。
11. 编译DTB文件。

  a. 执行如下命令，返回“Ascend310B-source”目录。
    cd /opt/Ascend310B-source

  b. 执行如下命令，编译DTB文件。
    bash build.sh dtb

    出现如下回显，且生成“dt.img”文件表示编译内核userBaseConfig文件成功。

```
generate /opt/Ascend310B-source/output/dt.img success!
sign /opt/Ascend310B-source/output/dt.img success!
```


    编译后的“dt.img”文件会自动存放于“Ascend310B-source/output”目录下。

12. 生效DTB文件，具体请参见生效DTB文件。
